package main

import "fmt"

func main() {

	s := "王思聪"

	if s == "王思聪" {
		fmt.Println("aaaaa")
	}

	// if 支持1个初始化语句, 初始化语句和判断条件以分行分隔
	if a := 10; a == 10 {
		fmt.Println("a == 10")
	}


	// 1
	a1 := 11
	if a1 == 10 {
		fmt.Println("a1 == 10")
	} else {
		fmt.Println("a1 != 10")
	}

	// 2
	if a1 := 10; a1 == 10 {
		fmt.Println("a1 == 10")
	} else {
		fmt.Println("a1 != 10")
	}


	// 3
	a1 = 8
	if a1 == 10 {
		fmt.Println("a1 == 10")
	} else if a1 > 10 {
		fmt.Println("a1 > 10")
	} else if a1 < 10 {
		fmt.Println("a1 < 10")
	}

	// 4
	if a1 := 8; a1 == 10 {
		fmt.Println("a1 == 10")
	} else if a1 > 10 {
		fmt.Println("a1 > 10")
	} else if a1 < 10 {
		fmt.Println("a1 < 10")
	}

	// if 和 else if 的区别
	// 主要有满足前边一个条件后, 后边的 else if 都不会再执行
	fmt.Println("使用 else if ")
	b := 8
	if b == 10 {
		fmt.Println("b == 10")
	} else if b > 10 {
		fmt.Println("b > 10")
	} else if b < 10 {
		fmt.Println("b < 10")
	}

	// 主要有满足的一个条件后, 后边的 if 也会执行
	fmt.Println("使用 if ")
	b1 := 8
	if b1 == 10 {
		fmt.Println("b1 == 10")
	}
	if b1 > 10 {
		fmt.Println("b1 > 10")
	}
	if b1 < 10 {
		fmt.Println("b1 < 10")
	}


	//var num int
	//fmt.Printf("请按下楼层: ")
	//fmt.Scan(&num)
	// switch
	num := 4
	switch num { // switch 后边跟着是变量本身
	case 1:
		fmt.Println("按下的是1楼")
		break // go 语言可以不写就默认包含了break, 自动跳出 switch 循环迭代
		// fallthrough // 不跳出 switch 语句, 后边无条件执行
	case 2:
		fmt.Println("按下的是2楼")
	case 3:
		fmt.Println("按下的是3楼")
	default:
		fmt.Println("按下的是xxxx楼")
	}


	// switch 也支持1个初始化语句, 与变量本身使用分号隔开
	switch num1 := 4; num1 {
	case 1:
		fmt.Println("按下的是1楼")
	case 2:
		fmt.Println("按下的是2楼")
	case 3, 4, 5: // case 后可以有多个条件
		fmt.Println("按下的是3,4,5楼")
	default:
		fmt.Println("按下的是xxxx楼")
	}


	// switch 后边可以没有变量本身, 在 case 后可以有条件
	score := 85
	switch {
	case score > 90:
		fmt.Println("优秀")
	case score > 80:
		fmt.Println("良好")
	case score > 70:
		fmt.Println("及格")
	}
}
